package model

import "time"

type Channel struct {
	// 课程评论主键 -- 忽略使用omitempty
	Id          uint64 `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	Title       string // 栏目名称
	Url         string // 访问路径
	Description string // 描述
	ParentId    uint64 // 父Id
	Icon        string
	Sorted      int // 排序 业务使用的是升序 小--大
	Status      int // 发布状态 0未发布 1发布
	IsDeleted   int // 删除状态 0未删除 1删除
	HotFlag     int
	NewFlag     int
	CreateTime  time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime  time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
	SystemId    uint64    // 系统编号
	SystemName  string    // 系统名称`
	Price       string    // 栏目价格
}

func (u *Channel) TableName() string {
	return "xk_channel"
}

/**
 * @desc 用户购买下载
 * @author feige
 * @date 2023-11-15
 * @version 1.0
 */
type UserBuyChannel struct {
	Id            uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	UserId        uint64    //用户id
	ChannelId     uint64    //栏目ID
	Nickname      string    //购买用户
	Avatar        string    //头像
	Title         string    //购买下载
	Cover         string    //下载封面
	Description   string    //描述
	Code          string    //兑换码
	Price         string    //购买价格
	Phone         string    //用户手机
	Username      string    //用户姓名
	Address       string    //用户地址
	Orderno       string    //订单编号
	Uuid          string    //用户UUID
	OrderJson     string    //订单完整信息
	Tradeno       string    //订单交易号
	PayMethod     int       //1 微信 2 支付宝 3 兑换码
	PayMethodName string    // 支付方式
	SystemId      uint64    // 系统ID
	SystemName    string    // 系统名称
	CreateTime    time.Time `orm:"auto_now_add;type(timestamp);description(创建时间);"` // 创建时间
	UpdateTime    time.Time `orm:"auto_now;type(timestamp);description(更新时间);"`     // 更新时间
}

func (u *UserBuyChannel) TableName() string {
	return "xk_channel_user_buy"
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 兑换码
 */
type ChannelCode struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	Code       string    //兑换码
	Mark       int       //是否兑换
	Opid       uint64    //下载
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
}

func (u *ChannelCode) TableName() string {
	return "xk_channel_code"
}
